<html>
  <head>
    <meta charset="UTF-8" />
    <title>绑定样式</title>
    <!-- import Vue -->
    <script type="text/javascript" src="../js/vue.js"></script>
    <style>
      .basic {
        width: 400px;
        height: 100px;
        border: 1px solid black;
      }
      .happy {
        border: 3px solid red;
        background-color: rgba(255, 255, 0, 0.644);
        background: linear-gradient(30deg, yellow, pink, orange, yellow);
      }
      .sad {
        border: 4px dashed rgb(2, 197, 2);
        background-color: skyblue;
      }
      .sad {
        border: 4px dashed rgb(2, 197, 2);
        background-color: skyblue;
      }
      .normal {
        background-color: #bfa;
      }
      .atguigu1 {
        background-color: yellowgreen;
      }
      .atguigu2 {
        font-size: 20px;
        text-shadow: 2px 2px 10px red;
      }
      .atguigu3 {
        border-radius: 20px;
      }
    </style>
  </head>
  <body>
    <div id="root">
        <!-- 绑定class样式--字符串写法，适用于：样式的类名不确定，需要动态指定 -->
        <div class="basic" :class="mood" @click="changeMood">{{name}}</div><br/><br/>

        <!-- 绑定class样式--数组写法，适用于：要绑定的样式个数不确定，名字也不确定 -->
        <div class="basic" :class="classArr">{{name}}</div><br/><br/>

        <!-- 绑定class样式--对象写法，适用于：要绑定的样式个数不确定，名字也确定，但要动态决定用不用 -->
        <div class="basic" :class="classObj">{{name}}</div><br/><br/>

        <!-- 绑定class样式--对象写法-->
        <div class="basic" :style="styleObj1">{{name}}</div><br/><br/>

        <!-- 绑定class样式--数组写法-->
        <div class="basic" :style="[styleObj1, styleObj2]">{{name}}</div><br/><br/>
        <div class="basic" :style="styleArr">{{name}}</div><br/><br/>

    </div>
  </body>

  <script type="text/javascript">
    Vue.config.productionTip = false; // 阻止vue在启动时生成生产提示。
    new Vue({
        el:'#root',
        data:{
            name:'Cetacean',
            mood: 'normal',
            classArr: ['atguigu1', 'atguigu2', 'atguigu3'],
            classObj:{
                happy: true,
                atguigu1: false,
                atguigu2: false
            },
            styleObj1: {
              fontSize: '40px',
              color: 'red'
            },
            styleObj2: {
              backgroundColor: 'orange'
            },
            styleArr: [
              {
                fontSize: '40px',
                color: 'pink'
              },
              {
                backgroundColor: 'grey'
              },
            ]
        },
        methods:{
            changeMood(){
                const arr = ['happy', 'sad', 'normal']
                const index = Math.floor(Math.random() * 3)
                this.mood = arr[index]
            }
        }
    })
  </script>
</html>
